gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_HORIZONTAL);
}
-static void
-clear_switcher (GtkStackSwitcher *self)
-{
- gtk_container_foreach (GTK_CONTAINER (self), (GtkCallback) gtk_widget_destroy, self);
-}
-
static void
on_button_clicked (GtkWidget *widget,
GtkStackSwitcher *self)
}
static void
-add_child (GtkStackSwitcher *self,
- GtkWidget *widget)
+add_child (GtkWidget *widget,
+ GtkStackSwitcher *self)
{
GtkWidget *button;
GList *group;
}
static void
-foreach_stack (GtkWidget *widget,
- GtkStackSwitcher *self)
+remove_child (GtkWidget *widget,
+ GtkStackSwitcher *self)
{
- add_child (self, widget);
+ GtkWidget *button;
+ GtkStackSwitcherPrivate *priv;
+
+ priv = gtk_stack_switcher_get_instance_private (self);
+
+ g_signal_handlers_disconnect_by_func (widget, on_title_icon_visible_updated, self);
+ g_signal_handlers_disconnect_by_func (widget, on_position_updated, self);
+ g_signal_handlers_disconnect_by_func (widget, on_needs_attention_updated, self);
+
+ button = g_hash_table_lookup (priv->buttons, widget);
+ gtk_container_remove (GTK_CONTAINER (self), button);
+ g_hash_table_remove (priv->buttons, widget);
}
static void
GtkStackSwitcherPrivate *priv;
priv = gtk_stack_switcher_get_instance_private (self);
- gtk_container_foreach (GTK_CONTAINER (priv->stack), (GtkCallback)foreach_stack, self);
+ gtk_container_foreach (GTK_CONTAINER (priv->stack), (GtkCallback)add_child, self);
+}
+
+static void
+clear_switcher (GtkStackSwitcher *self)
+{
+ GtkStackSwitcherPrivate *priv;
+
+ priv = gtk_stack_switcher_get_instance_private (self);
+ gtk_container_foreach (GTK_CONTAINER (priv->stack), (GtkCallback)remove_child, self);
}
static void
GtkWidget *widget,
GtkStackSwitcher *self)
{
- add_child (self, widget);
+ add_child (widget, self);
}
static void
GtkWidget *widget,
GtkStackSwitcher *self)
{
- GtkWidget *button;
- GtkStackSwitcherPrivate *priv;
-
- priv = gtk_stack_switcher_get_instance_private (self);
-
- g_signal_handlers_disconnect_by_func (widget, on_title_icon_visible_updated, self);
- g_signal_handlers_disconnect_by_func (widget, on_position_updated, self);
- g_signal_handlers_disconnect_by_func (widget, on_needs_attention_updated, self);
-
- button = g_hash_table_lookup (priv->buttons, widget);
- gtk_container_remove (GTK_CONTAINER (self), button);
- g_hash_table_remove (priv->buttons, widget);
+ remove_child (widget, self);
}
static void
clear_switcher (switcher);
g_clear_object (&priv->stack);
}
-
if (stack)
{
priv->stack = g_object_ref (stack);